Quote in a CDATA, don't entitize, HTML inside KML.
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Wed, 18 Oct 2006 18:25:06 +0000 (18:25 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Wed, 18 Oct 2006 18:25:06 +0000 (18:25 +0000)
git-svn-id: http://gpsbabel.googlecode.com/svn/trunk@2404 f51c46e8-681c-474f-0cfe-069cfd0219fb

gpsbabel/kml.c

index 8188886a62196769155ece07985081d29af46783..8d47d9f34c3ebf882e2516aa3178f34a3ef4ddbb 100644 (file)
@@ -634,7 +634,7 @@ static void kml_waypt_pr(const waypoint *waypointp)
                kml_write_xml(0,"<description>\n");
                if (waypointp->url_link_text && waypointp->url_link_text[0])  {
                        char *olink = xml_entitize(waypointp->url_link_text);
-                       kml_write_xml(0,"<a href=\"%s\">%s</a>", odesc, olink);
+                       kml_write_xml(0,"<![CDATA[<a href=\"%s\">%s</a>]]>", odesc, olink);
                        xfree(olink);
                }
                else
@@ -644,8 +644,11 @@ static void kml_waypt_pr(const waypoint *waypointp)
                     waypointp->gc_data.diff && waypointp->gc_data.terr) {
                        fprintf(ofd, " %3.1f/%3.1f", waypointp->gc_data.diff / 10.0,  waypointp->gc_data.terr / 10.0);
                        if (waypointp->gc_data.desc_short.utfstring) {
-                               char *ob = html_entitize(waypointp->gc_data.desc_short.utfstring);
-                               fprintf(ofd, "<p>%s</p>\n", ob);
+                               // Dont entitize it - either XML or HTML.
+                               // Wrap it in a cdata and let Earth work it out.
+
+                               fprintf(ofd, "<![CDATA[<p>%s</p>]]>\n", waypointp->gc_data.desc_short.utfstring);
+
                                xfree(ob);
                        }
                }